package org.ahuanlien.crm.web.controller;

import org.ahuanlien.crm.domain.CaseReportBill;
import org.ahuanlien.crm.query.CaseReportBillQueryObject;
import org.ahuanlien.crm.service.ICaseReportBillService;
import org.ahuanlien.crm.util.JSONResult;
import org.ahuanlien.crm.util.LogicException;
import org.ahuanlien.crm.util.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("caseReportBill")
public class CaseReportBillController {

    @Autowired
    private ICaseReportBillService caseReportBillService;

    //打开页面和数据获取分开
    @RequestMapping("view")
    public String view() {
        return "caseReportBill/view";
    }

    @RequestMapping("query")
    @ResponseBody
    public PageResult query(CaseReportBillQueryObject qo) {
        PageResult result = caseReportBillService.query(qo);
        return result;
    }


    @RequestMapping("saveOrUpdate")
    @ResponseBody
    public JSONResult saveOrUpdate(CaseReportBill caseReportBill) {
        try {
            caseReportBillService.saveOrUpdate(caseReportBill);
        } catch (Exception e) {
            e.printStackTrace();
            return JSONResult.mark("操作失败");
        }
        return JSONResult.success("操作成功");
    }

    /*受理的方法 ,从数据库中检查 保单信息 ,
    如果保单有效在明细中设置现场派出人员, 改变报案单的状态为已受理 ,
    否则,把异常信息传回给前台
    */
    @RequestMapping("acceptCase")
    @ResponseBody
    public JSONResult acceptCase(String caseNumber) {
        try {
            caseReportBillService.acceptCase(caseNumber);
        } catch (LogicException e) {
            e.printStackTrace();
            caseReportBillService.rejectCase(caseNumber);
            return JSONResult.mark(e.getMessage());
        }
        return JSONResult.success("操作成功");
    }

    /*在明细单页面发送ajax请求到后台, 判断当前明细对应的报案单的状态是否是已受理状态*/
    @RequestMapping("checkReportBill")
    @ResponseBody
    public JSONResult checkReportBill(String caseNumber) {
        try {
            caseReportBillService.checkReportBill(caseNumber);
        } catch (LogicException e) {
            e.printStackTrace();
            return JSONResult.mark(e.getMessage());
        }
        return JSONResult.success("可以编辑");
    }

}
